package com.eclipse.e0112_java基础.集合;

import java.util.ArrayList;
import java.util.Iterator;

public class Test {
	
	
	public static void main(String[] args) {
		
		ArrayList list = new ArrayList();
		list.add(1);
		list.add("123");
		list.listIterator();
		Iterator itr = list.iterator();
		while(itr.hasNext()) {
			Object obj = itr.next();
			if(obj.equals("123")) {
				itr.remove();
			}
		}
		
//		list.add(1);
//		list.add("123");
//		list.add("123");
//		list.add("123");
//		list.remove("123");
//		System.out.println(list);
//		System.out.println(list.get(0));
//		System.out.println(list.get(1));
//		
//		Car car = new Car();
//		list.add(car);
//		Car car2 = (Car)list.get(2);
//		System.out.println(car2.color);
		
		
//		List list = new  ArrayList();
//		list.add("1");
//		list.add("2");
//		list.add("3");
//		list.add("4");
		
		
		// java.util.ConcurrentModificationException
		// 并发修改异常
		// 在迭代集合的过程当中，是不允许直接修改集合结构
		// 删除时可以使用迭代当中的删除，去删除元素
		// 遍历集合，如果元素等于2 把2给删除
		
		// 在获取迭代器modCount = expectedModCount
		
		// modCount:集合修改次数
		// expectedModCount迭代当中记录集合修改的次数
		// 只要修改的次数不相等
		// modCount != expectedModCount
		// throw new ConcurrentModificationException();
		
		//1.遍历集合
//		Iterator it = list.iterator();
//		while(it.hasNext()) {
//			//2.取出对应的元素
//			String str = (String)it.next();
//			//3.判断该 元素是否等于 2
//			if(str.equals("2")) {
//				//4.等于 2 就把2给集合当中删除
////				list.remove("2");
//				//it.remove(); //删除当前正在迭代集合的元素（正在遍历元素 next）
//				             //expectedModCount = modCount;
//				//list.add("myxq");
//			}
//		}
//		System.out.println(list);
	}
}

//class Car{
//	String color = "red";
//	double money;
//	
//	
//}

